package ai.people.netmon.msgsearch.service;

import ai.people.netmon.framework.domain.archives.dto.ThirdPartySearchPageResponse;
import ai.people.netmon.framework.domain.searchmsg.request.InformationSearchDetailParamVO;
import ai.people.netmon.framework.domain.searchmsg.request.InformationSearchPageParamVO;
import ai.people.netmon.framework.domain.searchmsg.request.InformationSearchReqVO;
import ai.people.netmon.framework.domain.searchmsg.vo.FbListRespFieldsVO;
import ai.people.netmon.framework.domain.searchmsg.vo.InformationSearchDetailRespVO;
import ai.people.netmon.framework.domain.searchmsg.vo.InformationSearchListRespVO;
import ai.people.netmon.framework.domain.searchmsg.vo.TgListRespFieldsVO;
import ai.people.netmon.framework.model.response.PageResponse;
import ai.people.netmon.msgsearch.domain.entity.FacebookAccountRegisterInfo;
import ai.people.netmon.msgsearch.domain.entity.TelegramAccountRegisterInfo;

/**
 * @author LiGuanNan
 * @date 2022/6/24 10:09
 */
public interface IJxSocialMediaRegisterInfoEsSearchService {

    /**
     * facebook分页查询
     *
     * @param reqParam 要求参数
     * @return {@link PageResponse}<{@link InformationSearchReqVO}>
     */
    ThirdPartySearchPageResponse<InformationSearchListRespVO<FbListRespFieldsVO>> queryFbAccountPage(InformationSearchReqVO<InformationSearchPageParamVO> reqParam);

    /**
     * facebook账号详情
     *
     * @param reqParam 要求参数
     * @return {@link InformationSearchDetailRespVO}<{@link FacebookAccountRegisterInfo}>
     */
    InformationSearchDetailRespVO<FacebookAccountRegisterInfo> fbDetail(InformationSearchReqVO<InformationSearchDetailParamVO> reqParam);

    /**
     * 查询tg帐户分页
     *
     * @param reqVo 要求参数
     * @return {@link InformationSearchListRespVO}<{@link TgListRespFieldsVO}>
     */
    ThirdPartySearchPageResponse<InformationSearchListRespVO<TgListRespFieldsVO>> queryTgAccountPage(InformationSearchReqVO<InformationSearchPageParamVO> reqVo);

    /**
     * telegram账号详情
     *
     * @param reqParam 要求参数
     * @return {@link InformationSearchDetailRespVO}<{@link TelegramAccountRegisterInfo}>
     */
    InformationSearchDetailRespVO<TelegramAccountRegisterInfo> tgDetail(InformationSearchReqVO<InformationSearchDetailParamVO> reqParam);
}
